/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package othello;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import othello.Juego.ESTADO;
import othello.Juego.TURNO;

/**
 *
 * @author raul
 */

public class Casilla extends JButton implements ActionListener{

    public int fil;
    public int col;
    public byte key;

    public Casilla(int fila,int col) {
        this.fil=fila;
        this.col=col;
        this.setMinimumSize(new Dimension(80,80));
        this.setPreferredSize(new Dimension(80,80));
        this.addActionListener(this);

    }

    public Casilla(byte key) {
        this.key=key;
    }



    public void actionPerformed(ActionEvent e) {
        boolean selecciono_casilla=false;
        //turno jugador negro
        if(Juego.turno==Juego.TURNO.Negro){

            //si la casilla es una casilla valida para seleccionar, se seleecciona
            selecciono_casilla=Colocar_Ficha(fil, col, ESTADO.NEGRO);

        }
        else{
            //turno jugador blanco
            selecciono_casilla=Colocar_Ficha(fil, col, ESTADO.BLANCO);

        }

        //otorgar el turno al siguiente jugador
        if(selecciono_casilla){
            Juego.turno=Juego.turno==TURNO.Negro?TURNO.Blanco:TURNO.Negro;
        }


    }

    public boolean Colocar_Ficha(int fil,int col, ESTADO jugador){
        //si la casilla esta vacia

        if (Juego.estado[fil][col] == ESTADO.VACIO) {
            
            Juego.estado[fil][col] = jugador;

            this.setBackground(jugador==ESTADO.BLANCO?Color.WHITE:Color.BLACK);
            System.out.println("fila:"+getFila()+"  col:"+getColumna());

            return true;
        }
        //otorgar el turno al siguiente jugador
        return false;
    }



    public boolean hasAdjacency(){

        
        return false;

    }




    public byte getFila(){
        return (byte) (key / 8);
    }


    public byte getColumna(){
        return (byte) (key % 8);
    }
}
